// 学习培训计划 相关接口

// 获取token信息
function token() {
	// 初始化返回值
	var data_return = false;
	// 读取临时缓存
	var save_short = uni.$focus.varForever('get');
	// 如果数据存在
	if (save_short && save_short.token) { data_return = save_short.token; }
	// 不存在则提示
	else { }
	// 返回数据
	return data_return;
}

export default {
	
	// ============================================== 集体学习入口页
	// 该用户是否允许创建学习组 
	allowForCreat: function (objC) {
		
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/studygroup/judgeCreate',
			loadingText: '请求创建权限',
			header: {
				"token": token()
			},
			openToast: false,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 回调数据封装
				var data_call = {
					isAllow: true, // 是否有权限
					btn_status: res.btn_status,
					info:{
						check_status: res.info.check_status,
						end_time: res.info.end_time,
						file: res.info.file,
						id: res.info.id,
						reason: res.info.reason,
						start_time: res.info.start_time
					}
				};
				if (res.btn_status != 1) {
					data_call.isAllow = false
				}
				// 回调数据
				if (objC.success) { objC.success(data_call); }
			}
		});
		
	},
	
	// 已加入学习组的列表
	learnGroupList: function (objC) {
		
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/studygroup/getStudyGroupList',
			loadingText: '请求学习列表',
			header: {
				"token": token()
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 学习组列表
				var list_yuan = res.list; // 原数据
				var list_back = []; // 结果数据
				// 循环原数据
				for (let i = 0; i < list_yuan.length; i++)
				{
					// 节点 - 一个学习组对象
					let ele_group = list_yuan[i];
					// 重构学习组对象
					let obj_group = {
						"key": 'groupItemKey_' + ele_group.id, // 循环key值
						groupId: ele_group.id, // 学习组id
						name: ele_group.title, // 组名称
						state: ele_group.study_status, // 组状态：1-学习中 2-已结束 3-审核不通过
						people: ele_group.study_count, // 组员人数
						time: ele_group.create_time, // 创建时间
						isAllow: ele_group.role==1 ? true : false, // 是否拥有创建许可
						is_check:ele_group.is_check  //待审核状态
					};
					// 如果组审核状态异常              标记为“审核未通过”
					if (ele_group.is_check != 1) { obj_group.state = 3; }
					// 将重构后的对象 添加到 结果数组
					list_back.push(obj_group);
				}
				
				// 回调数据封装
				var data_call = {
					list: list_back, // 学习组列表
				};
				
				// 回调数据
				if (objC.success) { objC.success(data_call); }
			}
		});
		
	},
	
	// 获取学习组二维码
	QrCodeForGroup: function (objC) {
		
		// url传递数据
		var myurldata = Object.assign({
			id: 0, // 学习组id
		}, objC.urlData);
		
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/studygroup/getStudyGroupQrCode',
			urlData: myurldata,
			loadingText: '请求二维码',
			header: {
				"token": token()
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				
				// 二维码信息
				var info_yuan = res; // 原数据
				var info_back = {}; // 结果数据
				// 重构信息
				info_back = {
					img: 'data:image/jpg;base64,' + info_yuan.sign_qrcode, // 二维码图片base64编码
				};
				
				// 回调数据封装
				var data_call = {
					info: info_back, // 二维码信息
				};
				// 回调数据
				if (objC.success) { objC.success(data_call); }
			}
		});
		
	},
	
	// 加入某学习组
	joinGroupInCode: function (objC) {
		
		// url传递数据
		var myurldata = Object.assign({
			id: 0, // 学习组id
		}, objC.urlData);
		
		// 请求数据
		uni.$focus.request({
			method: "put",
			url: '/aq_course/app/v2/studygroup/joinStudyGroup',
			urlData: myurldata,
			loadingText: '',
			header: {
				"token": token()
			},
			loadingDelayed: false, // 不延时
			openMask: true, // 蒙层框开启
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				
				// 加入学习组信息
				var info_yuan = res.info ? res.info : {}; // 原数据
				var info_back = {}; // 结果数据
				// 重构信息
				info_back = {
					groupId: info_yuan.id, // 学习组id
					project: info_yuan.project, // 所在项目名称
					company: info_yuan.work_unit, // 工作单位名称
					time: info_yuan.create_time, // 创建时间
					people: info_yuan.user_str, // 已加入人员
				};
				
				// 回调数据封装
				var data_call = {
					info: info_back, // 加入学习组信息
				};
				// 回调数据
				if (objC.success) { objC.success(data_call); }
			}
		});
		
	},
	
	
	// ============================================== 创建集体学习页面
	// 创建学习组
	creatGroup: function (objC) {
		
		// 普通传递数据
		var mydata = Object.assign({
			project: '', // 项目名称
			work_unit: '', // 单位名称
			scene_img: '', // 现场照url
		}, objC.data);
		
		// 请求数据
		uni.$focus.request({
			method: "post",
			url: '/aq_course/app/v2/studygroup/createStudy',
			data: mydata,
			loadingText: '正在创建',
			header: {
				"token": token()
			},
			loadingDelayed: false, // 不延时
			openMask: true, // 蒙层框开启
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 成功回调
				if (objC.success) { objC.success(res); }
			}
		});
		
	},
	
	
	// ============================================== 集体学习详情页面
	// 学习组详情信息
	groupDetails: function (objC) {
		
		// url传递数据
		var myurldata = Object.assign({
			id: 0, // 学习组id
		}, objC.urlData);
		
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/studygroup/getStudyGroupDetail',
			urlData: myurldata,
			loadingText: '请求学习详情',
			header: {
				"token": token()
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 基本信息
				var info_yuan = res.info; // 原数据
				var info_back = {}; // 结果数据
				// 重构基本信息
				info_back = {
					pageTitle: info_yuan.title, // 页面标题
					groupId: info_yuan.id ? info_yuan.id : 0, // 学习组id
					state: info_yuan.study_status, // 组状态：1-学习中 2-已结束 3-审核不通过
					is_check: info_yuan.is_check,//审批状态
					project: info_yuan.project ? info_yuan.project : '', // 所在项目
					company: info_yuan.work_unit ? info_yuan.work_unit : '', // 工作单位
					time: info_yuan.create_time ? info_yuan.create_time : '', // 创建时间
					people: info_yuan.study_count ? info_yuan.study_count : 0, // 学习人数
					crew: info_yuan.user_str ? info_yuan.user_str : '', // 人员名单
					QrCode: 'data:image/jpg;base64,' + info_yuan.sign_qrcode, // 学习组二维码
					sceneImg: info_yuan.scene_img, // 集体学习现场照片
					isAllow: info_yuan.role==1 ? true : false, // 是否拥有创建许可
				};
				// 如果组审核状态异常              标记为“审核未通过”
				if (info_yuan.is_check != 1) { info_back.state = 3; }
				
				// 学习课程列表
				var list_yuan = res.study_log_list; // 原数据
				var list_back = []; // 结果数据
				// 循环原数据
				for (let i = 0; i < list_yuan.length; i++)
				{
					// 节点 - 一个课程对象
					let ele_lesson = list_yuan[i];
					// 课程对象重构
					let obj_lesson = {
						"key": 'lessonKey_' + ele_lesson.id, // 循环key值
						courseId: ele_lesson.id, // 课程id
						jieId: ele_lesson.study_chapter_id, // 小节id
						img: ele_lesson.thumb, // 课程的图片
						isMust: ele_lesson.is_must, // 是否必修
						title: ele_lesson.title ? ele_lesson.title : '', // 课程的标题文字
						scoreGet: ele_lesson.study_score ? ele_lesson.study_score : 0, // 已获学时
						scoreTotal: ele_lesson.total_score ? ele_lesson.total_score : 0, // 总学时
						state: ele_lesson.study_status, // 学习状态：0-未学习  1-学习中  2-已学完
						stateTxt: ele_lesson.study_status_txt ? ele_lesson.study_status_txt : 0, // 状态文字
					};
					// 将元素放入临时数组
					list_back.push(obj_lesson); 
				}
				
				// 回调数据封装
				var data_call = {
					info: info_back, // 学习组基本信息
					list: list_back, // 学习课程列表
				};
				// 回调数据
				if (objC.success) { objC.success(data_call); }
			}
		});
		
	},
	
	// 结束学习
	endLearning: function (objC) {
		
		// url传递数据
		var myurldata = Object.assign({
			id: 0, // 学习组id
		}, objC.urlData);
		
		// 请求数据
		uni.$focus.request({
			method: "put",
			url: '/aq_course/app/v2/studygroup/endStudy',
			urlData: myurldata,
			loadingText: '正在结束学习',
			header: {
				"token": token()
			},
			loadingDelayed: false, // 不延时
			openMask: true, // 蒙层框开启
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 成功回调
				uni.hideLoading()
				if (objC.success) { objC.success(res); }
				
				setTimeout(()=>{
					// 返回上一页
						uni.navigateBack();
				}, 500);
			}
		});
		
	},
	
	//学习组创建申请表模板
	templateDownload: function (objC) {
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/studygroup/downloadFile',
			loadingText: '申请表模板下载中',
			header: {
				"token": token()
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 回调数据封装
				var data_call = {
					url: res.url
				};
				// 回调数据
				if (objC.success) { objC.success(data_call); }
			}
		});
		
	},

	//申请创建学习组权限
	submitApply: function (objC) {
		
		// 普通传递数据
		var mydata = Object.assign({
			file: '', // 模板文件图片
			start_time: '', // 开始时间
			end_time: '', // 结束时间
		}, objC.data);
		
		// 请求数据
		uni.$focus.request({
			method: "post",
			url: '/aq_course/app/v2/studygroup/submitApply',
			data: mydata,
			loadingText: '提交中',
			header: {
				"token": token() || ""
			},
			openMask: true, // 蒙层框开启
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {

				// 成功回调
				if (objC.success) { objC.success(res); }
			}
		});
		
	},

	//撤销创建学习组
	cancelApply: function (objC) {
			// url传递数据
			// var myurldata = Object.assign({
			// 	id: '', // 学习组id
			// }, objC.urlData);
			
			// 请求数据
			uni.$focus.request({
				method: "put",
				url: `/aq_course/app/v2/studygroup/revokeApply/${objC.urlData.id}`,
				header: {
					"token": token()
				},
				loadingDelayed: false, // 不延时
				openMask: true, // 蒙层框开启
				fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
				success: (res) => {
					// 回调数据封装
					var data_call = {

					};
					// 回调数据
					if (objC.success) { objC.success(data_call); }
				}
			});
			
		},
};